Event Interceptors
From Documentation
This article is out of date, please refer to https://docs.zkoss.org/zk_dev_ref/ for more up to date information.
Though EventInterceptor is designed to allow developer to intercept how an event is processed, you could use it as callback to know how long it takes to process an event. The event processing time can be calculated by subtracting the time between EventInterceptor.beforeProcessEvent(Event) and EventInterceptor.afterProcessEvent(Event)
Once implemented, you could register it by specifying the following in WEB-INF/zk.xml (assume the class is called foo.MyEventMeter):
<zk>
<listener>
<listener-class>foo.MyEventMeter</listener-class>
</listener>
</zk>